import java.io.*;

/***
 * @program: maven
 * @ClassName: f
 * @Description:
 * @Author: chenxiejia
 * @Date: 2022/1/19 16:38
 * @version : V1.0
 */
public class f {
    static int num = 0;
    static long tt = 0;

    public static void main(String[] args) throws IOException {
        File file = new File("F:/jdk");
        thow(file);
        File fil = new File("F:\\jdk.txt");
        try (BufferedReader buff = new BufferedReader(new FileReader(fil))) {

            tt = buff.lines().count();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println("文件个数" + num);
        System.out.println("代码行数" + tt);


    }

    public static void thow(File file) {
        //判断文件名是否为目录
        if (file.isDirectory()) {
            //转为FILE类型数组
            File[] files = file.listFiles();

            //遍历子目录
            for (File file1 : files) {
                //判断是否为子目录，如果是就递归
                if (file1.isDirectory()) {
                    thow(file1);
                }
                //判断子目录是否是普通文件，并且后缀是java
                if (file1.isFile() && file1.getName().endsWith(".java")) {
                    //new一个输入流对象和输出流对象，并创建一个文件
                    try (var a = new FileOutputStream("F:\\jdk.txt", true); var b = new FileInputStream(file1.getAbsolutePath())) {
                        //将对象b的内容添加到文件a中
                        num += 1;
                        b.transferTo(a);
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }
            }

        }
        //判断文件是否是普通文件，并且后缀是java
        if (file.isFile() && file.getName().endsWith(".java")) {
            //new一个输入流对象和输出流对象，并创建一个文件
            try (var a = new FileOutputStream("D:\\java123.java", true); var b = new FileInputStream(file.getAbsolutePath())) {
                //将对象b的内容添加到文件a中
                num += 1;
                b.transferTo(a);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }


        }


    }
}
